home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
language
/
embedded
/
m68k
/
fbug68k.arc
/
AS.C
< prev
next >
Wrap
C/C++ Source or Header
|
1989-08-16
|
2KB
|
85 lines
#include "userdef.h"
/* **************************************************************** */
/* **************************************************************** */
ascmd(argc,argv)
int argc; /* number of arguments on the command line */
char *argv; /* the command line */
{
extern int error; /* global flag for error from getnum() */
register int num; /* the amount to back up or advance */
register int start; /* the address at which assembly/disassembly is done */
register int size; /* the size of the code assembled/disassembled */
if (argc != 2)
print(ERR01);
else
{
striparg(argv);
start = getnum(argv,ERR02,DEFAULTSCALE);
if (error)
return(0);
while (TRUE)
{
error = FALSE;
size = disasm(start);
num = getlineNR(argv);
switch(argv[0])
{
case BACKUP:
shiftarg(argv,1);
if (num == 1)
{
num = getnum(argv,ERR02,DEFAULTSCALE);
if (error || num == 0)
num = 1;
}
else
num = 1;
start = start - num;
break;
case FINISH:
return(0);
case NEXT:
shiftarg(argv,1);
if (num == 1)
{
num = getnum(argv,ERR02,DEFAULTSCALE);
if (error || num == 0)
num = 1;
}
else
num = 1;
start = start + num;
break;
case HELP:
print("\nMC%d Assembler/Disassembler",DEVICE);
print(MMASHELPMSG);
break;
default:
if (num != 0)
{
print(" \r");
size = assembly(start,argv);
}
else
print("\n");
if (size == 0)
{
print(ERR09);
print(argv);
print("\n");
}
else if(size < 0)
size=0;
start = start + size;
break;
}
}
}
}
/* **************************************************************** */